| 
 
 IKO_gp_GTrsf2d InterfaceDefines a non persistent transformation in 2D space.
 This transformation is a general transformation.
 It can be a Trsf2d from package gp, an affinity, or you can
 define your own transformation giving the corresponding
 matrix of transformation.
 
 With a GTrsf2d you can transform only a doublet of coordinates
 XY. It is not possible to transform other geometric objects
 because these transformations can change the nature of non-
 elementary geometric objects.
 A GTrsf2d is represented with a 2 rows * 3 columns matrix :
 
 V1   V2   T        XY         XY
 | a11  a12  a14 |   | x |      | x'|
 | a21  a22  a24 |   | y |      | y'|
 |  0    0    1  |   | 1 |      | 1 |
 
 Query IKO_Standard_Object from this interface to create a copy or obtain the type name Methods
InitInit1Init2SetAffinitySetValueSetTranslationPartSetTrsf2dSetVectorialPartIsNegativeIsSingularFormTranslationPartVectorialPartValueInvertInvertedMultiplyMultipliedPreMultiplyPowerPoweredTransformsTransformedTransforms1Trsf2d_CSFDB_Getgp_GTrsf2dmatrix_CSFDB_Getgp_GTrsf2dloc_CSFDB_Getgp_GTrsf2dshape_CSFDB_Setgp_GTrsf2dshape_CSFDB_Getgp_GTrsf2dscale_CSFDB_Setgp_GTrsf2dscale 
 	HRESULT Init()
  returns identity transformation. 
 
 	HRESULT Init1(IKO_gp_Trsf2d* T)
  Converts the gp_Trsf2d transformation T into a general transformation.
 
 
 	HRESULT Init2(IKO_gp_Mat2d* M, KC2D* V)
  Creates   a transformation based on the matrix M and the vector V where M defines the vectorial part of the
 transformation, and V the translation part.
 
 
 	HRESULT SetAffinity(IKO_gp_Ax2d* A, double Ratio)
 
 	HRESULT SetValue(int Row, int Col, double Value)
   Replaces   the coefficient (Row, Col) of the matrix representing this transformation by Value,
 Raises OutOfRange if Row  1 or Row  2 or Col  1 or Col  3
 
 
 	HRESULT SetTranslationPart(KC2D* Coord)
 
 	HRESULT SetTrsf2d(IKO_gp_Trsf2d* T)
   Assigns the vectorial and translation parts of T to this transformation. 
 
 	HRESULT SetVectorialPart(IKO_gp_Mat2d* Matrix)
  Replaces the vectorial part of this transformation by Matrix. 
 
 	HRESULT IsNegative(VARIANT_BOOL* ret)
   Returns true if the determinant of the vectorial part of this transformation is negative.
 
 
 	HRESULT IsSingular(VARIANT_BOOL* ret)
  Returns true if this transformation is singular (and therefore, cannot be inverted).
 Note: The Gauss LU decomposition is used to invert the
 transformation matrix. Consequently, the transformation
 is considered as singular if the largest pivot found is less
 than or equal to gp::Resolution().
 Warning
 If this transformation is singular, it cannot be inverted.
 
 
 	HRESULT Form(gp_TrsfFormKO* ret)
   Returns the nature of the transformation.  It can be an identity transformation, a rotation, a translation, a mirror
 transformation (relative to a point or axis), a scaling
 transformation, a compound transformation or some
 other type of transformation.
 
 
 	HRESULT TranslationPart(KC2D* ret)
   Returns the translation part of the GTrsf2d. 
 
 	HRESULT VectorialPart(IKO_gp_Mat2d** ret)
   Computes the vectorial part of the GTrsf2d. The returned Matrix is a 2*2 matrix.
 
 
 	HRESULT Value(int Row, int Col, double* ret)
   Returns the coefficients of the global matrix of transformation. Raised OutOfRange if Row  1 or Row  2 or Col  1 or Col  3
 
 
 	HRESULT Invert()
 
 	HRESULT Inverted(IKO_gp_GTrsf2d** ret)
   Computes the reverse transformation. Raised an exception if the matrix of the transformation
 is not inversible.
 
 
 	HRESULT Multiply(IKO_gp_GTrsf2d* T)
 
 	HRESULT Multiplied(IKO_gp_GTrsf2d* T, IKO_gp_GTrsf2d** ret)
   Computes the transformation composed with T and me. In a C++ implementation you can also write Tcomposed = this * T.
 Example :
 GTrsf2d T1, T2, Tcomp; ...............
 //composition :
 Tcomp = T2.Multiplied(T1);         // or   (Tcomp = T2 * T1)
 // transformation of a point
 XY P(10.,3.);
 XY P1(P);
 Tcomp.Transforms(P1);               //using Tcomp
 XY P2(P);
 T1.Transforms(P2);                  //using T1 then T2
 T2.Transforms(P2);                  // P1 = P2 !!!
 
 
 	HRESULT PreMultiply(IKO_gp_GTrsf2d* T)
 
 	HRESULT Power(int N)
 
 	HRESULT Powered(int N, IKO_gp_GTrsf2d** ret)
   Computes the following composition of transformations this * this * .......* me, N time.
 if N = 0 this = Identity
 if N  0 this = me.Inverse() *...........* me.Inverse().
 
 
 	HRESULT Transforms(KC2D* Coord)
 
 	HRESULT Transformed(KC2D* Coord, KC2D* ret)
 
 	HRESULT Transforms1(double* X, double* Y)
     Applies this transformation to the coordinates: -   of the number pair Coord, or
 -   X and Y.
 
 Note:
 -   Transforms modifies X, Y, or the coordinate pair Coord, while
 -   Transformed creates a new coordinate pair.
 
 
 	HRESULT Trsf2d(IKO_gp_Trsf2d** ret)
 
 	HRESULT _CSFDB_Getgp_GTrsf2dmatrix(IKO_gp_Mat2d** ret)
 
 	HRESULT _CSFDB_Getgp_GTrsf2dloc(KC2D* ret)
 
 	HRESULT _CSFDB_Getgp_GTrsf2dshape(gp_TrsfFormKO* ret)
 
 	HRESULT _CSFDB_Setgp_GTrsf2dshape(gp_TrsfFormKO p)
 
 	HRESULT _CSFDB_Getgp_GTrsf2dscale(double* ret)
 
 	HRESULT _CSFDB_Setgp_GTrsf2dscale(double p)
 
 |